#include "display.h"

uint8_t DisBuf[GRIDCNT] = {0};


void Display_Update(void)
{
	uint8_t i;
	
	for (i=0; i<GRIDCNT; i++)
	{
		AipBuf[i] = DisBuf[i];
	}
}

//5ms
void Display_BaseTime(void)
{
	static uint8_t tick = 0;

	tick++;
	if (tick >= 10) // 5ms*10=50ms
	{
		tick = 0;
		Display_Update();
		LED_Driver();
	}
}

void Display_All(void)
{
	uint8_t i;
	
	for (i=0; i<GRIDCNT; i++)
	{
		DisBuf[i] = 0xff;
	}
}

void Display_Clear(void)
{
	uint8_t i;
	
	for (i=0; i<GRIDCNT; i++)
	{
		DisBuf[i] = 0x00;
	}
}

uint8_t code[] = 
{
    SEGA + SEGB + SEGC + SEGD + SEGE + SEGF,    //0
    SEGB + SEGC,                                //1
    SEGA + SEGB + SEGD + SEGE + SEGG,           //2
    SEGA + SEGB + SEGC + SEGD + SEGG,           //3
    SEGB + SEGC + SEGF + SEGG,                  //4
    SEGA + SEGC + SEGD + SEGF + SEGG,           //5
    SEGA + SEGC + SEGD + SEGE + SEGF + SEGG,    //6
    SEGA + SEGB + SEGC,                         //7
    SEGA + SEGB + SEGC + SEGD + SEGE + SEGF + SEGG, //8
    SEGA + SEGB + SEGC + SEGD + SEGF + SEGG,    //9
    SEGA + SEGB + SEGC + SEGE + SEGF + SEGG,    //A,
    SEGC + SEGD + SEGE + SEGF + SEGG,           //b,
    SEGA + SEGD + SEGE + SEGF,                  //c
    SEGB + SEGC + SEGD + SEGE + SEGG,           //d
    SEGA + SEGD + SEGE + SEGF + SEGG,           //E
    SEGA + SEGE + SEGF + SEGG,                  //F
    0,                                          //DISP_OFF
    SEGE + SEGG,                                //DISP_r1
    SEGG,                                       //DISP__
    SEGC + SEGE + SEGF + SEGG,                  //DISP_h    
    SEGC + SEGE + SEGG,                         //DISP_n
};
// Display_Char(DISP_r, 2, 3, 4)
void Display_Char(uint8_t a, uint8_t b, uint8_t c, uint8_t d)
{
    if(a < CODE_LENGTH )
    {
        DisBuf[0] |= code[a];    
    }
    if(b < CODE_LENGTH )
    {
        DisBuf[1] |= code[b];
    }
    if(c < CODE_LENGTH)
    {
       DisBuf[2] |= code[c];
    }
    if(c < CODE_LENGTH)
    {
       DisBuf[3] |= code[d];
    }

}

void Display(void)
{
    Display_Char(1, 2, 3, 4);
    ICON_WIFI();
    ICON_SILENCE();
    
    
}

